#ifndef CAMERAWIDGET_H
#define CAMERAWIDGET_H

#include <QMainWindow>
#include <QWidget>
#include <QList>
#include <QLabel>
#include <QFrame> // 容器
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
// 菜单
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QActionGroup>
// 摄像头
#include <QCamera> // 摄像头类
#include <QCameraInfo> // 摄像头信息类
#include <QCameraImageCapture> // 截图器
#include <QCameraViewfinder> // 预览窗口
// 辅助类
#include <QImage> // 获取截图的类
#include <QDateTime> // 用于保存文件时获取当前时间
// 提示消息
#include <QMessageBox>
#include <QDebug>

#include "tcpserversingleton.h"

class CameraWidget : public QMainWindow
{
    Q_OBJECT
public:
    explicit CameraWidget(QWidget *parent = 0);

    bool isOpen;

    QMenu *menu;
    QCamera *camera;
    QCameraImageCapture *capture;

    QLabel *capture_label; // 承载截取到的图片的label
    QFrame *raised_frame;
    QPushButton *capture_btn;
    QPushButton *open_btn;
    QVBoxLayout *left_layout;
    QCameraViewfinder *finder; // 承载预览的视频流

    tcpServerSingleton *tcpServer;

signals:
    void sig_send(const QString &send_data);

public slots:
    void slot_camera_selected(QAction *action); // 选择摄像头
    void slot_camera_capture(); // 截图
    void slot_image_captured(int index, const QImage &image); // 抓图成功后信号对应的槽函数
};

#endif // CAMERAWIDGET_H
